﻿using System.Collections.Generic;

namespace dk.Helper.Base
{
    public interface IVillages
    {
        /// <summary>
        /// Gets the villages by ID.
        /// </summary>
        IDictionary<int, IVillage> VillagesByID { get; }

        /// <summary>
        /// Gets the villages by player ID.
        /// </summary>
        IDictionary<int, IList<IVillage>> VillagesByPlayerID { get; }

        /// <summary>
        /// Gets the villages by coord.
        /// </summary>
        IVillage[,] VillagesByCoord { get; }
    
        /// <summary>
        /// Determines whether this instance contains specified village.
        /// </summary>
        /// <param name="village">The village.</param>
        /// <returns>
        ///   <c>true</c> if this instance contains specified village; otherwise, <c>false</c>.
        /// </returns>
        bool Contains(IVillage village);

        /// <summary>
        /// Adds the specified village.
        /// </summary>
        /// <param name="village">The village.</param>
        void Add(IVillage village);

        /// <summary>
        /// Removes the specified village.
        /// </summary>
        /// <param name="village">The village.</param>
        void Remove(IVillage village);
    }
}